package br.edu.unip.tcc.jogdadavelha;

import br.edu.unip.tcc.jogdadavelha.gui.MultiMenuList;

import java.io.IOException;

import javax.bluetooth.BluetoothStateException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDletStateChangeException;
import net.java.dev.marge.communication.CommunicationListener;
/**
 * @author Fabricio V. Zamara
 */
public class TabuleiroCanvas extends Canvas implements CommunicationListener, CommandListener {

    public boolean isO = true;
    private boolean player1 = true;
    private boolean player2 = false;
    public static final int TIPO_X = 1;
    public static final int TIPO_O = 0;
    private int tipo;
    private Command voltarCommand = new Command("Voltar", Command.BACK, 0);
    private final Command EXIT_COMMAND = new Command("Sair", Command.EXIT, 1);
    Graphics g;
    int[][] O = new int[3][3]; //matriz de posi��o de aonde que se desenha O
    int[][] X = new int[3][3]; //matriz de posi��o de aonde que se desenha X
    int[][] tabuleiro = new int[3][3];
    private int xL1, xL2=0;
    private int yL1, yL2=0;
    private boolean fimJogo;


    public TabuleiroCanvas(int tipo, boolean isO, boolean player1) {
        super();
        this.tipo = tipo;
        this.isO = isO;
        this.player1 = player1;
        setFullScreenMode(false);
        this.addCommand(EXIT_COMMAND);
        this.setCommandListener(this);

    }

    protected void paint(Graphics g) {
        // Metodo da Classe Canvas aonde faz todo o desenho do jogo
        this.g = g;
        desenhaTabuleiro(g); //metodo aonde desenha o tabulerio " # "

        verificaJogadorO(); // verifica se � vez do O jogar
        verificaJogadorX(); // verifica se � vez do X jogar

        desenhaLinha();
        temGanhador(); //verifica se tem ganhador
        repaint();     // metodo da classe Canvar para reddesha

    }

    private void desenhaTabuleiro(Graphics g) {
        // Limpa a janela
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, getWidth(), getHeight());

        //desenha o tabuleiro
        g.setColor(0, 0, 0);   // cor da linha
//     desenha linhas verticais
        g.fillRoundRect(getHeight() / 3, 0, 4, 500, 10, 10);//x,y,espessura, tamaho,arredondamento da aresta
        g.fillRoundRect(getHeight() / 3 * 2, 0, 4, 500, 10, 10);//x,y,espessura, tamaho,arredondamento da aresta

        //desenha linhas horizontais
        g.fillRoundRect(0, getWidth() / 3, 500, 4, 10, 10);//x,y,espessura, tamaho,arredondamento da aresta
        g.fillRoundRect(0, getWidth() / 3 + getWidth() / 3, 500, 4, 10, 10);//x,y,espessura, tamaho,arredondamento da aresta


    }
        private void desenhaLinha() {
        g.drawLine(xL1, yL1, xL2, yL2);
    }


       private void desenhaX(int x1, int y1, int x2, int y2) {

        g.drawLine(x1, y1, x2, y2); // desenha uma linha diagonal
        g.drawLine(x1, y1 + 35, x2, y2 - 35); // desenha outra linha diagonal
        // formando assim um X
    }

    private void desenhaO(int x2, int y2) {
        /* desenha uma arco de 360 nas posi�oes x e y
        drawArc =tem como paramento a posi��o x,y
        tamanho e a espesura do arco, angulo inicial e angulo final */

        g.drawArc(x2, y2, 30, 30, 0, 360);
    }

  public void verificaJogadorO() {
        if (O[0][0] == 1) {  // coloca o botao 0 pressionado
            desenhaO((getWidth()/3)/2-15, (getHeight()/3)/2-15);     //desenha O na posi�ao do botao 1

        }
        if (O[0][1] == 1) { // coloca o botao 0 pressionado
            desenhaO(getWidth()/2-15, (getHeight()/3)/2-15);   //desenha O na posi�ao do botao 2;;;;
        }
        if (O[0][2] == 1) {  // coloca o botao 0 pressionado
            desenhaO(getWidth()-45, (getHeight()/3)/2-15);     //desenha O na posi�ao do botao 3
        }
        if (O[1][0] == 1) { // coloca o botao 0 pressionado
            desenhaO((getWidth()/3)/2-15, getHeight()/2-10);   //desenha O na posi�ao do botao 4
        }
        if (O[1][1] == 1) {  // coloca o botao 0 pressionado
            desenhaO(getWidth()/2-15, getHeight()/2-10);     //desenha O na posi�ao do botao 5
        }
        if (O[1][2] == 1) { // coloca o botao 0 pressionado
            desenhaO(getWidth()-50, getHeight()/2-10);   //desenha O na posi�ao do botao 6
        }
        if (O[2][0] == 1) {  // coloca o botao 0 pressionado
            desenhaO((getWidth()/3)/2-15, getHeight()-45);    //desenha O na posi�ao do botao 7
        }
        if (O[2][1] == 1) {  // coloca o botao 0 pressionado
            desenhaO(getWidth()/2-15, getHeight()-45);     //desenha O na posi�ao do botao 8
        }

        if (O[2][2] == 1) { // coloca o botao 0 pressionado
            desenhaO(getWidth()-45, getHeight()-45);   //desenha O na posi�ao do botao 9
        }

    }

    public void verificaJogadorX() {

        if (X[0][0] == 1) {  // coloca o botao 0 pressionado
            desenhaX((getWidth()/3)/2-20, (getHeight()/3)/2-20, getWidth()/4, getHeight()/4);        //desenha X na posi�ao do botao 1
      }
        if (X[0][1] == 1) { // coloca o botao 0 pressionado
            desenhaX(getWidth()/2-15, (getHeight()/3)/2-20, getWidth()-67, getHeight()/4);   //desenha X na posi�ao do botao 2
        }
        if (X[0][2] == 1) {  // coloca o botao 0 pressionado
            desenhaX(getWidth()-45, (getHeight()/3)/2-20, getWidth()-10, getHeight()/4);         //desenha X na posi�ao do botao 3
        }
        if (X[1][0] == 1) { // coloca o botao 0 pressionado
            desenhaX((getWidth()/3)/2-20, getHeight()/2-14, getWidth()/4, getHeight()-67); //desenha X na posi�ao do botao 4
        }
        if (X[1][1] == 1) {  // coloca o botao 0 pressionado
            desenhaX(getWidth()/2-20, getHeight()/2-14, getWidth()-67, getHeight()-67);    //desenha X na posi�ao do botao 5,
        }
        if (X[1][2] == 1) { // coloca o botao 0 pressionado
            desenhaX(getWidth()-45, getHeight()/2-14, getWidth()-10, getHeight()-67);       //desenha X na posi�ao do botao 6
        }
        if (X[2][0] == 1) {  // coloca o botao 0 pressionado
            desenhaX((getWidth()/3)/2-20, getHeight()-45, getWidth()/4, getHeight()-7);      //desenha X na posi�ao do botao 7
        }
        if (X[2][1] == 1) {  // coloca o botao 0 pressionado
            desenhaX(getWidth()/2-20, getHeight()-45, getWidth()-67, getHeight()-7);      //desenha X na posi�ao do botao 8
        }

        if (X[2][2] == 1) { // coloca o botao 0 pressionado
            desenhaX(135, 135, 170, 170 );      //desenha X na posi�ao do botao 9
        }
    }
 

    protected void keyPressed(int keyCode) {
        //Captura a tecla que foi pressionada e desenha X ou O
     if (fimJogo==false) {
        switch (keyCode) {

            case KEY_NUM1:      // se a tecla numero 1 foi pressionada
                if (tabuleiro[0][0] == 0) {

                    if (isO == true && player1 == true) { // se � vez do O
                        O[0][0] = 1; // seto true para a ser desenhado O na posi��o
                        enviarSimbolo(0, 0, TIPO_O);
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        tabuleiro[0][0] = 1;
                    } else {
                        X[0][0] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true;    // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(0, 0, TIPO_X);
                        tabuleiro[0][0] = 1;


                    }
                }
                break;
            case KEY_NUM2:      // se a tecla numero 2 foi pressionada
                if (tabuleiro[0][1] == 0 ) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[0][1] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(0, 1, TIPO_O);
                        tabuleiro[0][1] = 1;
                    } else {
                        X[0][1] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true;// seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(0, 1, TIPO_X);
                        tabuleiro[0][1] = 1;


                    }
                }
                break;
            case KEY_NUM3:      // se a tecla numero 3 foi pressionada
                if (tabuleiro[0][2] == 0) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[0][2] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(0, 2, TIPO_O);
                        tabuleiro[0][2] = 1;
                    } else {
                        X[0][2] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(0, 2, TIPO_X);
                        tabuleiro[0][2] = 1;
                    }
                }
                break;
            case KEY_NUM4:      // se a tecla numero 4 foi pressionada
                if (tabuleiro[1][0] == 0) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[1][0] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(1, 0, TIPO_O);
                        tabuleiro[1][0] = 1;
                    } else {
                        X[1][0] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(1, 0, TIPO_X);
                        tabuleiro[1][0] = 1;
                    }
                }
                break;
            case KEY_NUM5:      // se a tecla numero 5 foi pressionada
                if (tabuleiro[1][1] == 0) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[1][1] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(1, 1, TIPO_O);
                        tabuleiro[1][1] = 1;
                    } else {
                        X[1][1] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(1, 1, TIPO_X);
                        tabuleiro[1][1] = 1;
                    }
                }
                break;
            case KEY_NUM6:      // se a tecla numero 6 foi pressionada
                if (tabuleiro[1][2] == 0) {

                    if (isO == true && player1 == true) { // se � vez do O
                        O[1][2] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(1, 2, TIPO_O);
                        tabuleiro[1][2] = 1;
                    } else {
                        X[1][2] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(1, 2, TIPO_X);
                        tabuleiro[1][2] = 1;
                    }
                }
                break;
            case KEY_NUM7:      // se a tecla numero 7 foi pressionada
                if (tabuleiro[2][0] == 0) {

                    if (isO == true && player1 == true) { // se � vez do O
                        O[2][0] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(2, 0, TIPO_O);
                        tabuleiro[2][0] = 1;
                    } else {
                        X[2][0] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(2, 0, TIPO_X);
                        tabuleiro[2][0] = 1;
                    }
                }
                break;
            case KEY_NUM8:      // se a tecla numero 8 foi pressionada
                if (tabuleiro[2][1] == 0) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[2][1] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(2, 1, TIPO_O);
                        tabuleiro[2][1] = 1;
                    } else {
                        X[2][1] = 1; // seto true para a ser desenhado Z na posi��o

                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(2, 1, TIPO_X);
                        tabuleiro[2][1] = 1;
                    }
                }
                break;

            case KEY_NUM9:      // se a tecla numero 9 foi pressionada
                if (tabuleiro[2][2] == 0) {
                    if (isO == true && player1 == true) { // se � vez do O
                        O[2][2] = 1; // seto true para a ser desenhado O na posi��o
                        isO = false; // seto false para O, vez do X jogar
                        player1 = false;
                        enviarSimbolo(2, 2, TIPO_O);
                        tabuleiro[2][2] = 1;
                    } else {
                        X[2][2] = 1; // seto true para a ser desenhado Z na posi��o
                        isO = true; // seto true para O, vez do O jogar
                        player1 = true;
                        enviarSimbolo(2, 2, TIPO_X);
                        tabuleiro[2][2] = 1;
                    }
                }
                break;

            default:
            {}
                break;
        }
     }
    }

    private void temGanhador() {
//        // Verifica se O Ganhou na Diagonal
        if (O[0][0] == 1 && O[1][1] == 1 && O[2][2] == 1) {
              xL1=0;
            yL1=0;
            xL2=getWidth();
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

        }
        // Verifica se O Ganhou na Diagonal
        if (O[0][2] == 1 && O[1][1] == 1 && O[2][0] == 1) {
           xL1=getHeight();
            yL1=0;
            xL2=0;
            yL2=getHeight();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

        }

        // Verifica se X Ganhou na Diagonal
        if (X[0][0] == 1 && X[1][1] == 1 && X[2][2] == 1) {
            xL1=0;
            yL1=0;
            xL2=getWidth();
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;
        }

        // Verifica se X Ganhou na Diagonal
        if (X[0][2] == 1 && X[1][1] == 1 && X[2][0] == 1) {
            xL1=getHeight();
            yL1=0;
            xL2=0;
            yL2=getHeight();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;
        }

        // Verifica se O ganhou na linha
//      for (int i = 0; i < 3; i++) {
            if (O[0][0] == 1 && O[0][1] == 1 && O[0][2] == 1) {
            xL1=0;
            yL1=getWidth()/4;
            xL2=getHeight();
            yL2=getWidth()/4;

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }
            if (O[1][0] == 1 && O[1][1] == 1 && O[1][2] == 1) {
            xL1=0;
            yL1=getWidth()/2;
            xL2=getHeight();
            yL2=getWidth()/2;

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }
            if (O[2][0] == 1 && O[2][1] == 1 && O[2][2] == 1) {
            xL1=getHeight();
            yL1=0;
            xL2=0;
            yL2=getHeight();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }


        // Verifica se O ganhou na coluna
//        for (int j = 0; j < 3; j++) {
            if (O[0][0] == 1 && O[1][0] == 1 && O[2][0] == 1) {
            xL1=getHeight()/5;
            yL1=0;
            xL2=getHeight()/5;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;
            }
            if (O[0][1] == 1 && O[1][1] == 1 && O[2][1] == 1) {
            xL1=getHeight()/2;
            yL1=0;
            xL2=getHeight()/2;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;


            }
            if (O[0][2] == 1 && O[1][2] == 1 && O[2][2] == 1) {
            xL1=getHeight()-25;
            yL1=0;
            xL2=getHeight()-25;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }


        // Verifica se X ganhou na linha
//        for (int i = 0; i < 3; i++) {
            if (X[0][0] == 1 && X[0][1] == 1 && X[0][2] == 1) {
            xL1=0;
            yL1=getWidth()/4;
            xL2=getHeight();
            yL2=getWidth()/4;

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }
            if (X[1][0] == 1 && X[1][1] == 1 && X[1][2] == 1) {
            xL1=0;
            yL1=getWidth()/2;
            xL2=getHeight();
            yL2=getWidth()/2;

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }
            if (X[2][0] == 1 && X[2][1] == 1 && X[2][2] == 1) {
            xL1=getHeight();
            yL1=0;
            xL2=0;
            yL2=getHeight();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }

        // Verifica se O ganhou na coluna

//        for (int j = 0; j < 3; j++) {
          if (X[0][0] == 1 && X[1][0] == 1 && X[2][0] == 1) {
            xL1=getHeight()/5;
            yL1=0;
            xL2=getHeight()/5;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;
            }
            if (X[0][1] == 1 && X[1][1] == 1 && X[2][1] == 1) {
            xL1=getHeight()/2;
            yL1=0;
            xL2=getHeight()/2;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;


            }
            if (X[0][2] == 1 && X[1][2] == 1 && X[2][2] == 1) {
            xL1=getHeight()-25;
            yL1=0;
            xL2=getHeight()-25;
            yL2=getWidth();

            desenhaLinha();
            fimJogo = true;
            xL1=0;
            yL1=0;
            xL2=0;
            yL2=0;

            }



        



    }

    public void hasConnected() {
        JogoVelhaMIDlet.getInstance().setCurrent(this);
        //new Thread(this).start();
    }

    public void receivedMessage(String msg) {
        if (msg.startsWith("jogo ")) {
            String simbolo = msg.substring(msg.indexOf(" ") + 1, msg.indexOf("/"));
            String posicaoX = msg.substring(msg.indexOf("/") + 1, msg.indexOf("-"));
            String posicaoY = msg.substring(msg.indexOf("-") + 1);
            desenharSimboloEnviado(Integer.parseInt(posicaoX), Integer.parseInt(posicaoY), Integer.parseInt(simbolo));
        } else if (msg.equals("exit")) {
            JogoVelhaMIDlet.getInstance().getDevice().stopListening();
            try {
                JogoVelhaMIDlet.getInstance().exitMIDlet();
            } catch (MIDletStateChangeException ex) {
                ex.printStackTrace();
            }
            JogoVelhaMIDlet.getInstance().setCurrent(new MultiMenuList());
        }
    }

    public void receivedMessageError(IOException arg0) {
        JogoVelhaMIDlet.getInstance().showError("Mensagem de erro recebida", this);

    }

    public void sendMessageError(IOException arg0) {
        JogoVelhaMIDlet.getInstance().showError("Mensagem de erro recebida", this);
    }

    public void commandAction(Command c, Displayable arg1) {
        if (c == this.EXIT_COMMAND) {
            try {
                JogoVelhaMIDlet.getInstance().getDevice().send("exit");
                try {
                    JogoVelhaMIDlet.getInstance().exitMIDlet();
                } catch (MIDletStateChangeException ex) {
                    ex.printStackTrace();
                }

            } catch (BluetoothStateException e) {
                e.printStackTrace();
            }
         //   JogoVelhaMIDlet.getInstance().getDevice().stopListening();
           // JogoVelhaMIDlet.getInstance().setCurrent(new MultiMenuList());
        }
    }

    public void enviarSimbolo(int posX, int posY, int simbolo) {
        try {
            JogoVelhaMIDlet.getInstance().getDevice().send("jogo " + simbolo + "/" + posX + "-" + posY);

        } catch (BluetoothStateException ex) {
            ex.printStackTrace();
        }
    }

    private void desenharSimboloEnviado(int x, int y, int simbolo) {
        if (simbolo == 0 && x == 0 && y == 0) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 0 && y == 1) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 0 && y == 2) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 1 && y == 0) {
            O[x][y] = 1;
            isO = false;
            tabuleiro[x][y] = 1;
            player1 = false;
        } else if (simbolo == 0 && x == 1 && y == 1) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 1 && y == 2) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 2 && y == 0) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 2 && y == 1) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 2 && y == 2) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 0 && x == 0 && y == 0) {
            O[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = false;
            player1 = false;
        } else if (simbolo == 1 && x == 0 && y == 0) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 0 && y == 1) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 0 && y == 2) {
            X[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 1 && y == 0) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 1 && y == 1) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 1 && y == 2) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 2 && y == 0) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 2 && y == 1) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        } else if (simbolo == 1 && x == 2 && y == 2) {
            X[x][y] = 1;
            tabuleiro[x][y] = 1;
            isO = true;
            player1 = true;
        }

    }
}
